package com.medical.data.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.medical.data.domain.FormData;
import com.medical.data.domain.FormTemplate;
import com.baomidou.mybatisplus.extension.service.IService;
import com.medical.data.vo.*;

import java.util.Date;
import java.util.List;
import java.util.Map;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author cj
 * @since 2024-02-06
 */
public interface FormTemplateService extends IService<FormTemplate> {
    IPage<FormTemplate> getFormById(int currentPage);

    void insertForm(FormVo formVo);

    void insertFormTemplate(FormVo formVo);

    List<FormTemplate> getFormByUserId(int currentPage);

    void createNode(NodeVo nodeVo);

    FormTemplate creatFormByNode(FormNodeVo formNodeVo);

    FormTemplate createForm(FormByFormTamplate formByFormTamplate);

    List<FormResultVo> getAllForm(AllFormVo allFormVo);

    void importForm(ImportFormVo importFormVo);

    void deleteForm(String formId);

    void updateForm(UpdateFormVo updateFormByNodeVo);

    List<FormResultVo> getFormByNode(String nodeId, String projectId);

    Map<String,Object> getFormByUser(QueryFormVo queryFormVo);

    void savaForm(SavaFormVo savaFormVo);
    void isExist (String formId);

    List<FormTemplate> getFormByIds(List<String> value);

    List<AllFormsVo> getAllFormByProjectId(String projectId);

    boolean isFollowUp(String nodeId);

    String getNameByNodeId(String nodeId);

    FormTemplate getNodeById(String nodeId);

    int getFormTemplateNumber();

    int getTodayFormTemplateNumber();

    void deleteNode(String nodeId);

    void deleteFormInNode(String formId);

    void deleteFormInModel(String formId);

    int getFormDataNumberByUser(String id);

    void changeFormMessage(String formId, String formName);

    void shareFormTemplate(String formId);

    String getFormStatus(String formId);
}
